package com.transaction.manage.model.dto;

import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;

@Table(name = "account_status")
public class AccountStatus implements Serializable {
    @Id
    private Integer id;

    /**
     * 渠道编码
     */
    @Column(name = "channel_Code")
    private String channelCode;

    /**
     * 投资人基金交易账号
     */
    @Column(name = "transaction_Account_Id")
    private String transactionAccountId;

    /**
     * 基金账号
     */
    @Column(name = "ta_Account_Id")
    private String taAccountId;

    /**
     * 个人/机构；0：机构；1：个人；2：产品
     */
    @Column(name = "individual_Or_Institution")
    private String individualOrInstitution;

    /**
     * 证件类型
     */
    @Column(name = "certificate_Type")
    private String certificateType;

    /**
     * 证件号码
     */
    @Column(name = "certificate_No")
    private String certificateNo;

    /**
     * 客户姓名
     */
    @Column(name = "investor_Name")
    private String investorName;

    /**
     * 账户状态；1:开户；0：销户
     */
    private Integer status;

    private Date ctime;

    private Date utime;

    public AccountStatus() {
    }

    public AccountStatus(String channelCode, String transactionAccountId) {
        this.channelCode = channelCode;
        this.transactionAccountId = transactionAccountId;
    }

    public AccountStatus(String channelCode, String transactionAccountId, String taAccountId, String individualOrInstitution, String certificateType, String certificateNo, String investorName) {
        this.channelCode = channelCode;
        this.transactionAccountId = transactionAccountId;
        this.taAccountId = taAccountId;
        this.individualOrInstitution = individualOrInstitution;
        this.certificateType = certificateType;
        this.certificateNo = certificateNo;
        this.investorName = investorName;
        this.status = 1;
        this.ctime = new Date();
        this.utime = new Date();
    }

    private static final long serialVersionUID = 1L;

    /**
     * @return id
     */
    public Integer getId() {
        return id;
    }

    /**
     * @param id
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 获取渠道编码
     *
     * @return channel_Code - 渠道编码
     */
    public String getChannelCode() {
        return channelCode;
    }

    /**
     * 设置渠道编码
     *
     * @param channelCode 渠道编码
     */
    public void setChannelCode(String channelCode) {
        this.channelCode = channelCode;
    }

    /**
     * 获取投资人基金交易账号
     *
     * @return transaction_Account_Id - 投资人基金交易账号
     */
    public String getTransactionAccountId() {
        return transactionAccountId;
    }

    /**
     * 设置投资人基金交易账号
     *
     * @param transactionAccountId 投资人基金交易账号
     */
    public void setTransactionAccountId(String transactionAccountId) {
        this.transactionAccountId = transactionAccountId;
    }

    /**
     * 获取基金账号
     *
     * @return ta_Account_Id - 基金账号
     */
    public String getTaAccountId() {
        return taAccountId;
    }

    /**
     * 设置基金账号
     *
     * @param taAccountId 基金账号
     */
    public void setTaAccountId(String taAccountId) {
        this.taAccountId = taAccountId;
    }

    /**
     * 获取个人/机构；0：机构；1：个人；2：产品
     *
     * @return individual_Or_Institution - 个人/机构；0：机构；1：个人；2：产品
     */
    public String getIndividualOrInstitution() {
        return individualOrInstitution;
    }

    /**
     * 设置个人/机构；0：机构；1：个人；2：产品
     *
     * @param individualOrInstitution 个人/机构；0：机构；1：个人；2：产品
     */
    public void setIndividualOrInstitution(String individualOrInstitution) {
        this.individualOrInstitution = individualOrInstitution;
    }

    /**
     * 获取证件类型
     *
     * @return certificate_Type - 证件类型
     */
    public String getCertificateType() {
        return certificateType;
    }

    /**
     * 设置证件类型
     *
     * @param certificateType 证件类型
     */
    public void setCertificateType(String certificateType) {
        this.certificateType = certificateType;
    }

    /**
     * 获取证件号码
     *
     * @return certificate_No - 证件号码
     */
    public String getCertificateNo() {
        return certificateNo;
    }

    /**
     * 设置证件号码
     *
     * @param certificateNo 证件号码
     */
    public void setCertificateNo(String certificateNo) {
        this.certificateNo = certificateNo;
    }

    /**
     * 获取客户姓名
     *
     * @return investor_Name - 客户姓名
     */
    public String getInvestorName() {
        return investorName;
    }

    /**
     * 设置客户姓名
     *
     * @param investorName 客户姓名
     */
    public void setInvestorName(String investorName) {
        this.investorName = investorName;
    }

    /**
     * 获取账户状态；1:开户；0：销户
     *
     * @return status - 账户状态；1:开户；0：销户
     */
    public Integer getStatus() {
        return status;
    }

    /**
     * 设置账户状态；1:开户；0：销户
     *
     * @param status 账户状态；1:开户；0：销户
     */
    public void setStatus(Integer status) {
        this.status = status;
    }

    /**
     * @return ctime
     */
    public Date getCtime() {
        return ctime;
    }

    /**
     * @param ctime
     */
    public void setCtime(Date ctime) {
        this.ctime = ctime;
    }

    /**
     * @return utime
     */
    public Date getUtime() {
        return utime;
    }

    /**
     * @param utime
     */
    public void setUtime(Date utime) {
        this.utime = utime;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", channelCode=").append(channelCode);
        sb.append(", transactionAccountId=").append(transactionAccountId);
        sb.append(", taAccountId=").append(taAccountId);
        sb.append(", individualOrInstitution=").append(individualOrInstitution);
        sb.append(", certificateType=").append(certificateType);
        sb.append(", certificateNo=").append(certificateNo);
        sb.append(", investorName=").append(investorName);
        sb.append(", status=").append(status);
        sb.append(", ctime=").append(ctime);
        sb.append(", utime=").append(utime);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}